System and method for migrating agents between mobile devices

ABSTRACT

Mobile agents can be deployed to location aware mobile devices within specific regions of interest to achieve specific goals in respect of events occurring in the region of interest. In order to ensure that the agent can persist within the region of interest until the agent goals are achieved, the agent is configured to locate other devices within the region of interest and to propagate itself, by moving or copying itself, to those other devices. When a device hosting the agent exits the region of interest, the agent is terminated, thereby freeing device resources.

FIELD OF THE INVENTION

This disclosure relates to the deployment and execution of agents tomobile devices.

BACKGROUND OF THE INVENTION

In mobile communications, mobile devices may be configured to receiveand support mobile agents for performing various tasks. However, thevalue of a ubiquitous network of mobile sensory input has yet to beleveraged in the marketplace. Today, there is an increase in low cost,low power micro-electronics, sensors and wireless technologies. Forexample, the user of a location-aware mobile device may encounter oridentify a real-world event. The user can choose to download and executean intelligent agent-based software application to the mobile device toachieve a specific goal with or for the user.

The user will need to eventually leave the event or have some other needthat requires termination of the Agent on the device. This could happenbefore the Agent goal is completed. In prior art applications, this willtypically mean that the agent software is not able to continue toachieve its goal.

What is required is an improved system and method that enables mobileagents to persist.

SUMMARY OF THE INVENTION

In one aspect of the disclosure, there is provided a method fordeploying an agent to a mobile device comprising defining a region ofinterest (ROI), deploying an agent to a first mobile device, executingthe agent on the first mobile device within the region of interest, andpropagating the agent from the first mobile device to at least onesecond mobile device within the region of interest.

In one aspect of the disclosure, there is provided a server configuredto deploy an agent application to at least one mobile device. The agentapplication may be configured to execute on the at least one mobiledevice when the at least one mobile device is within a region ofinterest, perform at least one agent function with respect to the regionof interest, locate at least one other mobile device within the regionof interest, and replicate the agent on the at least one other mobiledevice within the region of interest.

In one aspect of the disclosure, there is provided a computer-readablemedium comprising computer-executable instructions for execution by afirst processor of a first device, that, when executed, cause the firstprocessor to execute an agent application, receive an agentparticipation request from a second processor of a second device, theagent participation request indicating a location of the second device,compare the location of the second device to a definition of a region ofinterest and provide the agent application to the second processor ifthe second device is within the region of interest.

BRIEF DESCRIPTION OF THE DRAWINGS

Reference will now be made, by way of example only, to specificembodiments and to the accompanying drawings in which:

FIG. 1 illustrates a network serving a region of interest;

FIG. 2 illustrates a process for deploying a mobile agent into theregion of interest;

FIG. 3 illustrates a state of the network of FIG. 1 with a deviceexecuting an agent application;

FIG. 4 illustrates a message flow when a device copies an agent to asecond device;

FIG. 5 illustrates a process for copying an agent from a first device toa second device;

FIG. 6 illustrates a process for terminating an agent on a device;

FIG. 7 illustrates a processor and memory of first and second devices;and

FIG. 8 illustrates an instruction set that can execute on the processorof the first device of FIG. 7.

DETAILED DESCRIPTION OF THE INVENTION

In FIG. 1, there is shown a network 10 that includes a server 20 and anynumber of mobile devices 12. The mobile devices may communicate with theserver 20 through any suitable communications protocol. The network 10supports peer-to-peer communication but otherwise, the state or type ofthe network is not relevant to the essence of the disclosure. The mobiledevices 12 may communicate with the server 20 and with each otherthrough one or more base stations 18. Typically, the devices 12 may beof many types including cellular phones, personal digital assistants(PDA), netbooks, laptops, and the like.

The mobile devices 12 are generally configured to support dynamic,executable content through the network and may receive content from theserver 20. In particular, the server 20 may deploy an agent application16 to a mobile device 12, for example in response to a request from thedevice 12. As described above, agents 16 may be made applicable toparticular events within a region of interest. The server 20 is thusable to define a boundary of the region of interest in order tocharacterize where the event is taking place. In one embodiment, theregion of interest may be defined by a series of latitude/longitudepoints or some similar array of coordinates. Alternatively, a region ofinterest may be defined as being within communication range of aparticular base station 18 or set of base stations.

In the present embodiments, the agent 16 may require its host device tobe location aware. Awareness of location may be determined by anin-built system, such as a GPS or similar, which is able to provide thedevice with its present location to a required degree of accuracy.Alternatively or in addition, a device may be location aware byreceiving information from the server or via communications with thebase stations 18.

A user at a mobile device 12 is able to download an agent 16 from theserver 20 and to execute the agent 16 on the device 12 in order toachieve a particular goal. The goal may be in respect of a particularevent occurring within a region of interest 15 covered by the network10. Examples of applications and goals of the agent are provided in moredetail below.

As described above, there can be contention when the user needs to leavethe ROI or have some other need that requires termination of the agenton the device before the goals of the agent have been achieved. In orderto strike a balance between the user's needs and the agent's needs onthe device, the agent software should be deployed so that it is able topersist its presence within the ROI to service others who enter the ROI.

A method for deployment of the agent into the ROI is illustrated in theflowchart 100 of FIG. 2. At step 101, an ROI is defined for a particularagent application 16. The agent application 16 is then deployed to atleast one mobile device 12 (step 102), for example in response to arequest from the mobile device 12. The agent then executes (step 103)and as part of the execution of the agent, the agent may propagateitself to one or more other agents within the ROI (step 104), therebyensuring that the agent can persist until the agent functions arecompleted.

Initially, the mobile device need not be in the ROI when it receives theagent but when the device 12 moves into the ROI the agent will detectthat the device is within the event boundaries and begin execution.Similarly, when the device 12 leaves the event boundary defined by theROI, the agent may terminate or place itself into a stand-by mode.

Agent propagation may occur by moving or copying the Agent betweenparticipating devices within the ROI. In either scenario, the Agent'smotivation is to remain actively executing within the ROI. This servesto flood the ROI with Agents that act independently from each other andfunction toward the same goal.

Copying of the agent will now be described with reference to FIGS. 3 to5. FIG. 3 illustrates a state of the network 10, FIG. 4 illustratescommunications between two devices during the copying and the process isshown in the flowchart 200 of FIG. 5. In FIG. 3, an ROI 40 is definedwith a nominal boundary as depicted. Device_1 31, Device_2 32 andDevice_3 33 are operating within the geographic limits of the ROI 40while Device_4 34 is operating outside of the ROI 40. It is consideredthat each of the devices 31-34 is capable of supporting agentapplications and thus each execute the agent bootstrap code. Inaddition, each of the devices 31-34 is considered to be location awareby respective location providers of the devices 31-34. The networkconnectivity may be via Internet Protocols or may be isolated from theInternet with the type and state of the connectivity being largelyirrelevant for the purposes of the present disclosure.

At commencement, it is considered that Device_1 has had an agent 30deployed to it, either from the server 20 (FIG. 1) or from other priordevices within the ROI. The agent includes an ROI definition 36 as wellas a device and location history of the agent 37.

Devices 32-34 which are executing the agent bootstrap code sendparticipation requests (step 201), e.g. by broadcast, multicast or bydirect communication to receptive devices, and then wait for agentactivation requests (step 203). The agent participation request 41provides the device identity and the current location of the device. Atstep 202, Device_1 31, which is currently hosting the agent 30, receivesagent participation requests 41 from the various other devices 32-34. Atstep 204, Device_1 31 determines from the agent participation requestwhether the requesting device is within the ROI 40. For example, theagent on Device_1 would compare the location of Device_4 34 indicated inan agent participation request with the ROI defined within the agent 36and determine that Device_4 34 is outside of the region of interest 40.In this case, the agent would return to step 202 and await a next agentparticipation request. Processing of an agent participation request fromDevice_2 32 however would show that Device_2 is located in the ROI andthus the agent 30 would proceed to step 206 and send an agent activationrequest 42 to Device_2 32. The agent activation request would return thedevice ID of Device_2 as well as an agent ID and a serialized version ofthe agent including both a definition of the ROI and a location ofdevice history of the agent. Device_1 would then proceed to step 208 andawait an agent activation response. At Device_2 32, if a timeout occurs(step 205) while awaiting the agent activation request, a failure isrecorded (step 207) and Device_2 32 returns to step 201 to send anotheragent participation request. Otherwise, if no timeout occurs, the agentactivation request is processed (step 209). That is, the agent isdeserialized and activated and the ROI and agent history is stored priorto starting the agent (step 211). If the agent cannot be successfullystarted as determined at step 213, then a failure is recorded 207 andDevice_2 32 returns to step 201. Otherwise, the copying of the agent isrecorded (step 215), e.g. by adding Device_2 32 to the location anddevice history. Device_2 32 then sends an agent activation response 43to Device_1 31 which indicates the device ID of Device_2 32, the agentID and a success or fail indicator.

If Device_1 31 receives the agent activation response 43 before atimeout (step 210) and the agent activation response 43 indicates thatthe agent has been successfully started on Device_2 (step 212), thenagent on Device_1 records the new agent (step 214). Otherwise, the agenton Device_1 records a failure (step 216).

At the conclusion of the process 200, the agent is actively executing onDevice_1 31 and on Device_2 32. Either of Device_1 or Device_2 may thencontinue replicating the agent to other devices within the ROI, such asDevice_3 33 following the process as described above.

The agent ID identifies the agent, and may be used by Device_2 todetermine if the agent is already available on the device. If Device_2doesn't have an agent with a matching agent ID, Device_2 must retrievethe correct agent from an external source, e.g., Device_1.

As an alternative to copying the agent, the agent 30 may be configuredto move from one device to another. The process for moving may besimilar to the process 200 shown in FIG. 5. However, the step ofrecording the new agent (step 214) may be replaced with the step ofterminating the agent on the host device, i.e. Device_1, once indicationof a successful activation on Device_2 is received.

Copying or moving of the agent may be triggered by the receipt of anagent activation request from another device within the ROI.Alternatively or in addition, the host device may only become receptiveto moving or copying the agent under certain conditions, such as whenthe device is being shut down, low battery power conditions, exiting theROI, reduced signal strength, a specific command from the user, and thelike.

EXAMPLES

A real-world event could be an unplanned emergency event (such as afire, flash flood, traffic accident, shooting, etc) or a plannednon-emergency event (such as a concert, fair, road repair, sportingevent, etc) or a combination (such as traffic congestion, road repairand a traffic accident). The origination of the agent and the ROI is notrelevant to this disclosure but can differ based on each scenario.Individual examples are detailed in the following paragraphs.

-   -   Disaster search and rescue missions could drop in mobile Base        Transceiver Stations (BTS) pre-programmed with a specific ROI        and Agents to facilitate propagation to other mobiles that are        in or enter the ROI. The agent copies itself to devices as they        enter the ROI of the search and rescue effort. The agent might        provide response leaders with command and control, enabling the        command post to identify each participant, observe the location        of each participant, assign search tasks to selected        participants, and notify participants of status changes. The        agent may change status or cease operating when a participant        enters a rest area, departs the ROI, or in some other manner        ceases to participate in the search and rescue mission.    -   A 911 dispatcher could submit an Agent and a ROI to a caller's        mobile in response to a traffic accident. The participant can        use the camera or various other sensor inputs of the mobile        device to indicate the type of injury (or injuries) involved.        The police and medical responders can use this information,        carried by the agent as it copies itself to additional devices        as they enter the region, to quickly facilitate their actions        (e.g., will Care-Flight be needed because of traffic        congestion?, etc). When the agent determines that the        participant has exited the ROI, e.g., by comparing the device's        current location with the ROI boundary, the agent moves to        another device that is entering the ROI, stops participating in        the ROI related to the traffic accident and waits for the next        event, or ceases operation. The act of copying or moving to a        device that is entering the ROI is an example of the agent        achieving the goal of persistence within the ROI.    -   A mobile user can create an Agent and ROI at a crowded        concession stand at a sporting event in order to quickly        understand the demands for hot dogs drinks, etc based on the        crowd's demands. As customers depart the service counter, the        agent detects the movement and either moves to a device        approaching the concession stand that isn't already running the        agent, or if no such device is available, stops operating.

Other scenarios would be apparent to the skilled addressee from theforegoing embodiments and examples.

In the above examples, the point-to-point communication within a regionof interest can help to promote a direct, expedient exchange ofinformation between agents. When an agent detects that its host devicehas left the ROI, it may terminate the agent. An agent's motivation tostay within a specified ROI, e.g. by moving or copying itself to otheragents, allows the device to free up resources acquired by the agentafter a power cycle or once the device leaves the ROI boundary.

In one embodiment, there may be defined one or more threshold conditionsthat enable the agent to provide a graceful termination on a device. Inone embodiment, a threshold of the ROI may be defined as a second seriesof coordinates that define a threshold boundary immediately outside ofthe ROI boundary. Devices at a location between the threshold boundaryand the ROI boundary may be considered to be within the threshold.

In one embodiment, a threshold of the ROI may be defined by signalstrength. For example, where a ROI is defined by proximity to basestations a device with a signal strength of less than 20% with a basestation within the ROI may be considered to be operating within athreshold region. The signal strength may be used to as a thresholdcondition irrespective of how the ROI is defined, e.g. by coordinates,base stations or by other means. The choice of threshold signalstrength, e.g. 20% is presented herein as an example with any suitablethreshold being chosen dependent on the application and implementation.

In a further embodiment, a device may be considered to be operating in athreshold region if the battery life of the device is below a requiredlevel, e.g. 20%.

A process for terminating the agent on a device is shown in theflowchart 300 of FIG. 6. At step 301, the agent is periodically updatingthe device location. If the agent determines that the device is stillcomfortably within the ROI (step 302) then normal agent operationcontinues (step 303). Otherwise the agent may determine if the device isin a geographic threshold region (step 304) and, if so, the agent entersa standby mode (step 305) where the agent actively monitors the devicelocation (step 301) but other agent functions such as data gathering andprocessing are suspended. In the standby mode, the agent may continue topropagate itself to other devices within the ROI. If step 304 shows thedevice to be outside of the threshold, then the agent enters atermination mode (step 306) and an optional termination timer is started(step 307). The termination timer provides a final opportunity for thedevice to re-enter the ROI.

Upon expiry of the termination timer (step 308), or if the terminationtimer is disabled, a final check of the device location is made (step309). If the device has re-entered the ROI as determined at step 310,then agent operation is resumed (step 311). If the agent has notre-entered the ROI but is within the ROI threshold, as determined atstep 312, then the agent enters the standby mode (step 313). Otherwise,the agent is terminated (step 314), at which time a terminationnotification message may be broadcast/multicast/unicast to known agentswithin the ROI.

Where non-geographic threshold conditions are employed, such as based onsignal strength and/or device battery power, the agent may enter astandby mode even if the device is within the ROI. Further, morestringent threshold conditions can be applied, such as battery powerless than 5%, to cause the agent to enter a termination mode.

The components of the system 10 may be embodied in hardware, software,firmware or a combination of hardware, software and/or firmware. In ahardware embodiment, a mobile device such as Device_1 31 may include aprocessor 61 operatively associated with a memory 62 as shown in FIG. 7.The memory 62 may store an instruction set 400 executable by theprocessor 61 which may include the bootstrap code described above. Thebootstrap code allows the processor 61 to receive an agent application,either from the server 20 or from another mobile device. The instructionset 400, shown in FIG. 8, may include instructions that, when executed,causes the processor 61 to execute the agent application (step 401)which may include storing a definition of the region of interest in thememory 62. When executing, the agent application can receive an agentparticipation request from a second processor 71 of a second device(step 402), e.g. Device_2 32 (FIG. 3). The agent participation requestmay be received through a suitable communications link 65, such as apeer-to-peer link or via one or more base stations and/or a server. Fromthe agent participation request, the processor 61 can determine thelocation of the second device and compare the second device's locationwith a definition of the region of interest (step 403). If the seconddevice is shown to be within the region of interest, the processor 61can provide a serialized version of the agent application to the secondprocessor 71 (step 404). The second processor 71, upon receiving theserialized agent application, may deserialize the agent application,store the ROI definition in its respective memory 72 and activate theagent application.

Although embodiments of the present invention have been illustrated inthe accompanied drawings and described in the foregoing description, itwill be understood that the invention is not limited to the embodimentsdisclosed, but is capable of numerous rearrangements, modifications, andsubstitutions without departing from the spirit of the invention as setforth and defined by the following claims. For example, the capabilitiesof the invention can be performed fully and/or partially by one or moreof the blocks, modules, processors or memories. Also, these capabilitiesmay be performed in the current manner or in a distributed manner andon, or via, any device able to provide and/or receive information.Further, although depicted in a particular manner, various modules orblocks may be repositioned without departing from the scope of thecurrent invention. Still further, although depicted in a particularmanner, a greater or lesser number of modules and connections can beutilized with the present invention in order to accomplish the presentinvention, to provide additional known features to the presentinvention, and/or to make the present invention more efficient. Also,the information sent between various modules can be sent between themodules via at least one of a data network, the Internet, an InternetProtocol network, a wireless source, and a wired source and viaplurality of protocols.

1.-18. (canceled)
 19. A computer-readable medium comprisingcomputer-executable instructions for execution by a first processor of afirst device to: execute an agent application; receive an agentparticipation request from a second processor of a second device, theagent participation request indicating a location of the second device;compare the location of the second device to a region of interest; andprovide the agent application to the second processor in response to thesecond device being located within the region of interest.
 20. Thecomputer-readable medium according to claim 19, comprisingcomputer-executable instructions for execution by the first processor ofthe first device to: determine that the first device exited the regionof interest; and terminate execution of the agent application on thefirst device in response to the determination.
 21. The computer-readablemedium according to claim 19, comprising computer-executableinstructions for execution by the first processor of the first deviceto: identify a plurality of devices that can support the agentapplication; select at least one of the identified plurality of deviceslocated within the region of interest; and propagate from the firstdevice to the selected at least one of the identified plurality ofdevices.
 22. The computer-readable medium according to claim 21,comprising computer-executable instructions for execution by the firstprocessor of the first device to copy the agent application to the atleast one of the plurality of devices.
 23. The computer-readable mediumaccording to claim 21, comprising computer-executable instructions forexecution by the first processor of the first device to propagate theagent application to the at least one of the plurality of devices. 24.The computer-readable medium according to claim 21, comprisingcomputer-executable instructions for execution by the first processor ofthe first device to determine a location of the at least one of theplurality of devices from a corresponding agent participation request.25. The computer-readable medium according to claim 21, comprisingcomputer-executable instructions for execution by the first processor ofthe first device to propagate the agent application to the at least oneof the plurality of devices in response to detecting the first deviceleaving the region of interest.
 26. The computer-readable mediumaccording to claim 19, comprising computer-executable instructions forexecution by the first processor of the first device to define athreshold of the region of interest.
 27. The computer-readable mediumaccording to claim 26, comprising computer-executable instructions forexecution by the first processor of the first device to at leastpartially define the threshold by a plurality of coordinates.
 28. Thecomputer-readable medium according to claim 26, comprisingcomputer-executable instructions for execution by the first processor ofthe first device to at least partially define the threshold by a signalstrength between the first device and a base station that serves theregion of interest.
 29. The computer-readable medium according to claim26, comprising computer-executable instructions for execution by thefirst processor of the first device to at least partially define thethreshold by a battery power of the first device.
 30. Thecomputer-readable medium according to claim 26, comprisingcomputer-executable instructions for execution by the first processor ofthe first device to operate in a standby mode in response to thedetermination that the first device is operating in the threshold of theregion of interest.
 31. The computer-readable medium according to claim26, comprising computer-executable instructions for execution by thefirst processor of the first device to: suspend at least one function ofthe agent application in response to the threshold; and attempt topropagate the agent application to the second device when the seconddevice is located within the region of interest.
 32. Thecomputer-readable medium according to claim 26, comprisingcomputer-executable instructions for execution by the first processor ofthe first device to terminate operations on the first device in responseto the determination that the first device is no longer located withinthe region of interest.
 33. A device, comprising: a memory configured tostore an agent application; and a processing device configured toexecute the agent application to: receive an agent participation requestfrom a second device, the agent participation request providing alocation of the second device; define a region of interest; and providethe agent application to the second device in response to the seconddevice being located within the region of interest.
 34. The device ofclaim 33, wherein the processing device is further configured to executethe agent application to terminate execution of the agent application inresponse to determining that the device exited the region of interest.35. The device of claim 33, wherein the processing device is furtherconfigured to execute the agent application to: identify a plurality ofdevices that support the agent application; and propagate the agentapplication to at least one of the identified plurality of devices thatis located within the region of interest.
 36. The device of claim 35,wherein the processing device is further configured to execute the agentapplication to copy the agent application to the at least one of theidentified plurality of devices.
 37. The device of claim 35, wherein theprocessing device is further configured to execute the agent applicationto propagate the agent application to the at least one of the identifiedplurality of devices.
 38. The device of claim 35, wherein the processingdevice is further configured to execute the agent application todetermine a location of the at least one of the identified plurality ofdevices from a corresponding agent participation request.
 39. The deviceof claim 35, wherein the processing device is further configured toexecute the agent application to propagate the agent application to theat least one of the plurality of devices in response to detecting thedevice leaving the region of interest.
 40. The device of claim 33,wherein the processing device is further configured to execute the agentapplication to define a threshold associated with the region ofinterest.
 41. The device of claim 40, wherein the processing device isfurther configured to execute the agent application to at leastpartially define the threshold by a plurality of coordinates.
 42. Thedevice of claim 40, wherein the processing device is further configuredto execute the agent application to at least partially define thethreshold by a signal strength between the device and a base stationthat serves the region of interest.
 43. The device of claim 40, whereinthe processing device is further configured to execute the agentapplication to at least partially define the threshold by a batterypower of the device.
 44. The device of claim 40, wherein the processingdevice is further configured to execute the agent application to operatein a standby mode in response to the determination that the device isoperating in the threshold of the region of interest.
 45. The device ofclaim 40, wherein the processing device is further configured to executethe agent application to: suspend at least one function of the agentapplication in response to the threshold; and attempt to propagate theagent application to a second device located within the region ofinterest.
 46. The device of claim 35, wherein the processing device isfurther configured to execute the agent application to terminateoperations in response to the determination that the device is no longerlocated within the region of interest.
 47. A computer-readable mediumcomprising computer-executable instructions for execution by adestination processor of a destination device to: transmit an agentparticipation request providing a location of the destination device toa source device; receive an agent application; and execute the agentapplication in response to the destination device being located within aregion of interest.
 48. The computer-readable medium of claim 47,comprising computer-executable instructions for execution by thedestination processor of the destination device to activate the agentapplication in response to receiving an agent activation request fromthe source device.
 49. The computer-readable medium of claim 47,comprising computer-executable instructions for execution by thedestination processor of the destination device to store the region ofinterest or agent history in response to the agent activation request.50. The computer-readable medium of claim 47, comprisingcomputer-executable instructions for execution by the destinationprocessor of the destination device to transmit an agent activationresponse to the source device.
 51. The computer-readable medium of claim50, comprising computer-executable instructions for execution by thedestination processor of the destination device, wherein the agentactivation response comprises at least one of a device identification,an agent application identification, and a success indicator.
 52. Adevice, comprising: a memory configured to store an agent applicationreceived from a source device responsive to an agent participationrequest; and a processing device configured to: transmit the agentparticipation request providing a location of the device to the sourcedevice; and execute the agent application in response to the devicebeing located within a region of interest.
 53. The device of claim 52,wherein the processing device is further configured to activate theagent application in response to receiving an agent activation requestfrom the source device.
 54. The device of claim 53, wherein theprocessing device is further configured to store the region of interestor agent history in response to the agent activation request.
 55. Thedevice of claim 52, wherein the processing device is further configuredto transmit an agent activation response to the source device.
 56. Thedevice of claim 55, wherein the agent activation response comprises atleast one of a device identification, an agent applicationidentification, and a success indicator.